DCR Import to Reltio

OCE Personal (OCE-P) and External Data Change Requests (DCR) to Reltio

Data Change Requests (DCR) that are created in OCE sales and external systems are being processed and posted to Reltio MDM using IDP pipeline.

DCR End to End Data Flow

Templates and best practices

DCR's can be processed into Reltio using two pipelines. Choose the right pipeline based on the requirements.

  • MDM_Load_Reltio_OCE_DCR - Existing pipeline for the DCR's created from one OCEP system (local DCR's) to one Reltio tenant. See config section Import DCR Pipeline Template under configure the parameters.

  • MDM_Load_Reltio_OCE_DCR_GBL - Newly introduced pipeline capable for local plus global use cases where DCR's are created across multiple OCEP systems to one IDP to post to one or multiple Reltio tenants. Refer to the config section Import Global DCR Pipeline Template under  to configure the parameters.

Note:   

Fresh implementation can choose the global pipeline template, which supports both local and global use cases.

Process Flow

  • TSK_OCEP_LOAD: Salesforce to IDP connector exports the OCE data from salesforce application and load into snowflake staging tables.

    Note:   

    This TSK_OCEP_LOAD step needs to be added manually for each OCEP system that is to be integrated within this IDP platform for the global use case.

  • Stage External DCR: LEXI process dumps the external DCR's into IDP S3 location, these files are loaded into staging table using S3Conector plug-in for further processing.

  • Build DCR:

    • Push External DCR - Data loaded into MDM_EXTERNAL_DCR table is pushed into MDM_Canonical schema C_DCR table with DCR details.

    • Populate/Hold OCE DCR: OCE DCR's are logged into an intermediate table called ODP_CORE_LOG.MDM_DCR_PUB_CNTL. This process validates the data, segregates data from multiple OCE tables and puts it into a control table for easy processing. If multiple DCRs are created on the same profile, only one DCR is processed in the first run and the others is processed in the subsequent run. An example: A new HCO (DCR1) and another DCR for affiliation with a new or existing HCP to the new HCO (DCR2). Both DCRs get loaded into the same batch. We can keep DCR2 on hold until DCR1 is processed.

    • Auto Approve/Reject DCR - OCE DCR's that are auto-approved is set with a status of either AUTO_APPROVED or AUTO_REJECTED in the MDM_DCR_PUB_CNTL table based on configurations.

    • Canonical Push - Valid DCR's that are available in MDM_DCR_PUB_CNTL with 'Active' status is transformed to MDM expected JSON format and moved to C_DCR table for Inbound plugin to push. See DCR Flow from canonical to Reltio

  • Load To Reltio: JSON payload created in C_DCR table with PENDING_PLUGIN status are pushed into Reltio tenant based on the Reltio connection configuration.

    Note:   

    Do not repeat this step for different Reltio tenants. Global DCR's is submitted to the right Reltio tenant along with the anypoint message queue details based on the global configuration. For local, the default Reltio connection specified in the pipeline is considered automatically. 

DCR Flow from canonical to Reltio

Overview

Dcr's are received from OCE system into the canonical schema tables. When the Dcr's are received, they do not have attribute level uri's, which are required before submitting the Dcr's to Reltio. This attribute enrichment happens in the canonical schema by making a get entity call to Reltio and fetching the required uri's into the DCR before it can be posted to Reltio. The input table C_DCR is holds the DCR json as received from OCE. Inbound batch processing enritches the Uri's in the JSON and posts it to Reltio. The process flow etc. is explained further in the following section.

Input Table

The input table that hold the incoming DCR has the following important fields.

COLUMN_NAME DATA TYPE PRIMARY KEY COMMENT
DCR_ID VARCHAR Y Auto generated Internal ID 
MDM_URI VARCHAR   Uri of the DCR after it is posted to Reltio
SOURCE_ID VARCHAR   Id of the DCR in the source system
SOURCE_NAME VARCHAR   identifies where the DCR came from 
COUNTRY VARCHAR    
JSON VARCHAR   change requests for the DCR 
LOAD_STATUS VARCHAR   initially PENDING_PLUGIN
LOAD_DETAILS VARCHAR   empty when received

Load Status and Load Details

The load status can have different values depending on the stage of the DCR. It is explained below.

# LOAD_STATUS LOAD_DETAILS ACTION
1 PENDING_PLUGIN EMPTY When the dcr is received from external or oce sales system
2 ERROR

This column can start can state the stage at which this error happened and the details related to this. The various possibilities of the error are explained below

EMPTYDCR_ERROR -- when the payload is not able to detect any changes that need to be posted.

GET_ERROR -- when there is an error or exception while getting the entity from retio tenant for an update DCR.

PAYLOAD_ERROR -- when there is an error while parsing the payload or processing the payload for getting uri's for enriching the changed attributes.

 

PARSECOMMENTS_ERROR – when there was an error parsing the comments which were send with the DCR. 

CREATE_ERROR -- while Posting Creating DCR request Reltio did not return a URI back  indicating that Dcr was not created successfully.

ADDINFO_ERROR -- when there is error/exception adding external Info to DCR. The Error can clear the created in previous step.

STARTDCR_ERROR - while starting DCR we did not get OK status back. The Error can clear the created in previous step.

 

After the dcr is processed once it can have these status's

All records with ERROR status is picked up and send to Lexi system Informing them of the cause of the issue. 

3

ERROR_ACKNOWLEDGE

Same as before After Lexi has received the ERROR status the status can change to this
4

SUCCESSFUL

The DCR was created successfully and load details can have the uri of the DCR

No Action

 

 

  PENDING_PLUGIN Details of the problem. As to why DCR could not be posted and it is attempted again This can happen when the DCR Reltio throws an error like System busy or timeout. The DCR can remain in PENGING_PLUGIN state and is attempted for processing during next run.

Distributed Tracing

After the DCR is processed, a message is sent to the distributed tracing queue with the result of the DCR. The message can have a stage and status embedded in it, indicating the state of the DCR after the processing is completed. Stage and status can have the following values:

Status Stage Description
PENDING SUCCESSFUL Dcr was processed successfully and is in pending status
ERROR PENDING The dcr is in error but it is recoverable and is attempted again
ERROR ERROR Dcr is in permanent error state and Lexi is informed